This invention relates generally to methods for controlling the execution of an application program, and more specifically a method and system for providing a user interface for controlling the performing of specialized tasks by the application program.
There currently exists a plethora of general-purpose application computer programs. These general-purpose application programs include word processors, desk top publishers, spreadsheets, and data base products. The field is very competitive for producing these products. When these general-purpose application programs were first developed for personal computers, they were unsophisticated by today""s standards. Due in part to competitive pressures, these programs evolved into very sophisticated programs that provide many features and options. For example, the original spreadsheet products basically provide a grid of cells for numerical calculations. Spreadsheet products today provide many more capabilities such as graphing data, storing and retrieving data, and programming functions.
Unfortunately, as these general-purpose application programs get more sophisticated, the user also needs to be more sophisticated to take advantage of advanced features. These advanced features often make tasks that were previously simple more complicated to perform. Consequently, users must devote a considerable amount of time to learning the product to perform these previously simple tasks. This complexity also affects the efficiency of tasks that are performed for the first time on an infrequent basis. For example, a user may want to quickly produce a quarterly newsletter using a desktop publishing product, but the user may not have design skills or skills in using all the necessary parts of the application. Also, a user may produce a quarterly newsletter using a desktop publishing product. However, the user may forget how to use many of the features of the publisher in between issues of the newsletter. Thus, the user must spend a certain amount of re-learning time each quarter.
A feature that has recently been added to several general-purpose computer programs is interprocess communications. Interprocess communications allows computer programs to transmit data to each other through communications channels. Interprocess communications has typically been used to synchronize programs, to request data from a program, and send data to a program. Microsoft Corporation has developed a standard interprocess communications mechanism for application programs. The mechanism is called the Dynamic Data Exchange (DDE). The DDE provides a means for interprocess communications for programs that are developed for the Windows windowing environment. The DDE feature of Windows is described in the xe2x80x9cMicrosoft Systems Journal,xe2x80x9d November, 1987 and the xe2x80x9cMicrosoft Windows Programmer""s Reference.xe2x80x9d The DDE is implemented through message passing. The DDE is typically used to allow two application programs to share data. For example, a user may want to incorporate a quarterly chart that is developed in a graphics package into a newsletter. Using DDE, the publisher product could request a new chart to be generated by the graphics product. The publisher product could then automatically incorporate the new chart into the current newsletter. The DDE thus provides a mechanism for one program to share and update data with another program.
Typically, developers of application programs that use the DDE will publish their DDE interface. For example, the developer of a spreadsheet product will publish a list of messages that it will recognize and how it will respond to those messages. Some general-purpose application programs define these messages so that each function that can be accomplished through the user interface to the application program can be accomplished through the DDE.
It would be desirable to have an easy-to-use method and system for using theses sophisticated general-purpose programs.
It is an object of the present invention to provide a method and system for performing a specialized task in a general-purpose application program.
It is another object of the present invention to provide a new user interface to a preexisting application program to control the execution of a task.
It is another object of the present invention to provide a method and system that allows third parties to extend and customize the features of an existing application program.
It is another object of the present invention to provide an interface program that has expert knowledge relating to the performance of a specialized task.
It is another object of the present invention to provide a system architecture for the performing of specialized task in an application program.
These and other objects, which will become apparent as the invention is more fully described below, are obtained by a method and system for controlling the execution of an application program to effect the performing of a specialized task. In preferred embodiments, an interface computer program gathers status information from the application computer program, collects user input relating to the specialized task, generates commands to send to the application program, and sends the commands to the application program to effect the execution of the specialized task.